package function1;

import java.util.function.Consumer;

/**
 * @Description TODO
 * @Author li
 * @Date 2022/5/10 10:57 下午
 */
public class ConsumerDemo {

    /**
     * 功能描述 Consumer函数式接口，1个输入，1个输出 包含一个抽象方法 accept
     * @author YiPeng
     * @date 2022/5/9
     * @param * @param:		null
     * @return java.util.function.Consumer
     */
    public static Consumer consumerDemo(){
        // 写法 1
//        Consumer consumer = new Consumer() {
//            @Override
//            public void accept(Object o) {
//                System.out.println(o);
//            }
//        };
        // 写法 2
//        Consumer consumer = (o) ->{
//            System.out.println(o);
//        };
        // 写法 3
//        Consumer consumer = (o) -> System.out.println(o);
        // 写法 4
//        Consumer consumer = System.out::println;

        //  andThen 用法 return (T t) -> { accept(t); after.accept(t); };
        Consumer consumer = (o) -> System.out.println(o + "0");
        Consumer consumer1 = (o) -> System.out.println(o + "1");

        consumer1.andThen(consumer).accept("测试Consumer");

        return consumer1;
    }

    public static void main(String[] args) {
        // 测试Consumer
        consumerDemo().accept("测试Consumer");
        // andThen 用法
        consumerDemo();
    }
}
